/*
New Scotland Yard is an online multiplayer adaptation
of the boardgame "Scotland Yard". Copyright (C) 2011
Massey University Software C Group 3
This program is free software: you can redistribute it
and/or modify it under the terms of the GNU General
Public License as published by the Free Software
Foundation, either version 3 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will
be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General
Public License along with this program. If not, see
<http://www.gnu.org/licenses/>.
*/
package nz.ac.massey.softwarec.group3.actions;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import nz.ac.massey.softwarec.group3.game.Game;
/**
* GetData - Servlet for processing data requests from a client.
* @version 1.0 Release
* @since 1.0
* @authors Natalie Eustace | Wanting Huang | Paul Smith | Craig Spence
*/
public class GetData extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
final PrintWriter out = response.getWriter();
final String actionType = (String) request.getParameter("action");
final HttpSession session = request.getSession();
if ("gameData".equals(actionType)) {
final Game game = (Game) session.getAttribute("game");
out.print(DataGetter.getGameData(game));
}
if ("lobbyData".equals(actionType)) {
out.print(DataGetter.getLobbyData());
}
if ("gamesData".equals(actionType)) {
out.print(DataGetter.getGamesData());
}
if ("gamePlayersData".equals(actionType)) {
final Game game = (Game) session.getAttribute("game");
out.print(DataGetter.getGamePlayersData(game));
}
if ("openTokData".equals(actionType)) {
final Game game = (Game) session.getAttribute("game");
out.print(DataGetter.getOpenTokData(game));
}
if ("mapData".equals(actionType)) {
final Game game = (Game) session.getAttribute("game");
out.print(DataGetter.getMapData(game));
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "This servlet processes request for data about the game, map, or lobby, and returns it as a JSON string.";
}// </editor-fold>
}